package com.cs.beneficios.web.action;

import com.cs.beneficios.business.entity.AreasDAO;
import com.cs.beneficios.business.entity.ProgramaDAO;
import com.cs.beneficios.business.entity.SubProgramaDAO;
import com.cs.beneficios.business.model.AreaVO;
import com.cs.beneficios.business.model.ProgramaVO;
import com.cs.beneficios.business.model.SubProgramaVO;
import com.cs.beneficios.common.ConnectionFactory;
//import com.cs.beneficios.common.entity.Consultas;
import com.cs.paoyer.administration.business.model.UserVO;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;

import java.sql.SQLException;

import java.util.Collection;

import java.util.LinkedList;

import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;

public class ModificarSubprogramaAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    HttpSession session = request.getSession();
    UserVO user = (UserVO)session.getAttribute("userInfo");
        
    String strCodeSub = request.getParameter("Codigo");
    if (strCodeSub == null)
        strCodeSub = request.getParameter("Subprograma");
    
    String strCodeProg = request.getParameter("code");
    
    SubProgramaVO objSubProgVO = new SubProgramaVO();
    ProgramaVO objProgVO = new ProgramaVO();
    
    SubProgramaDAO objSubProDAO = new SubProgramaDAO(cf);
    AreasDAO objAreaDAO = new AreasDAO(cf);
    ProgramaDAO objProgDAO = new ProgramaDAO(cf);
    
    Collection coBeneficio = null;
    Collection coSubSecret = null;
    Collection coPrograma = null;
    try{
        if(strCodeSub != null && !strCodeSub.equals(""))
        {
            objSubProgVO.setCode(new Long((strCodeSub)));
            coBeneficio = objSubProDAO.findTotalInformation(objSubProgVO);
            cf.closeConnection(objSubProDAO.getConn());
            
            coPrograma = objProgDAO.findAllProgramaByCriterea(objProgVO);
            cf.closeConnection(objProgDAO.getConn());
            
            if (strCodeProg == null) {
               objSubProgVO = null;
               objSubProgVO = new SubProgramaVO();
               List lBeneficio = new LinkedList();
               lBeneficio = (List)coBeneficio;
               objSubProgVO = (SubProgramaVO)lBeneficio.get(0);
               strCodeProg = String.valueOf(objSubProgVO.getCodePrograma());
            }
            
            AreaVO objAreaVO = new AreaVO();
            objAreaVO = objAreaDAO.getAreaByProg(strCodeProg);
            
            coSubSecret = objAreaDAO.ViewAllSubSecre(String.valueOf(objAreaVO.getCode()));
            cf.closeConnection(objAreaDAO.getConn());
            
          request.setAttribute("coBeneficio",coBeneficio);
          request.setAttribute("coSubSecret",coSubSecret);
          request.setAttribute("secretaria", objAreaVO.getNombre());
          request.setAttribute("programas",coPrograma);
          if(strCodeProg != null)
            request.setAttribute("codeProg",strCodeProg);
        }
    }catch(SQLException e) {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
    }
    
    
    
    
    return mapping.findForward("success");
  }
}